1. Field of the Invention
Embodiments of the present invention relate, in general, to systems and methods for computing virtualization and particularly to pluggable extensions to virtual machine monitors.
2. Relevant Background
Virtualization broadly describes the separation of a resource or request for service from the underlying physical delivery of that service. Virtual memory, for example, allows computer software to gain access to more memory than is physically installed in a computer via background swapping of data to disk storage. Virtualization techniques are applicable to multiple information technology infrastructure layers as they provide a layer of abstraction between computing storage and hardware and the applications running on the storage and hardware.
Virtualization enables multiple operating systems to run on a single physical system and share the underlying hardware resources. This is commonly known as partitioning and is one of many facets of virtualization. There are generally two approaches to partitioning, those being a hosted approach and a hypervisor architecture. The hosted approach provides partitioning services on top of a standard operating system and supports a broad range of hardware configurations. A hypervisor architecture uses a virtualization layer. This layer is the first layer installed and has direct access to the hardware resources. Thus this approach is more efficient and enables greater scalability and performance.
One enhancement to virtualization is paravirtualization. In computing, paravirtualization is a virtualization technique that presents a software interface to virtual machines that is similar but not identical to that of the underlying hardware. Paravirtualization is a tradeoff between operating system compatibility and performance. For certain central processor unit (“CPU”) bound applications running on systems without virtualization hardware, paravirtualization assists and allows the virtual machine monitor to be simpler in that virtual machines that run on paravirtualization can achieve performance closer to non-virtualized hardware. Thus a paravirtualization model offers potential performance benefits when a guest operating system or application is aware that it is running with a virtualized environment and has been modified to exploit this environment. Operating systems must be explicitly ported to run on top of a paravirtualized virtual machine monitor. However, once modified, the guest operating system can never be migrated back to run on the physical hardware, and thus owners of proprietary operating systems may decline to allow paravirtualization for strategic purposes. In addition to requiring that the operating system be modified to run on the virtualized environment, paravirtualization leverages a hypervisor for the underlying technology and may require changes to the operating system kernel.